package com.jt.www.admin.order_wxb.service;

import com.github.pagehelper.PageInfo;
import com.jt.www.enums.woxuebao.ConFirmStatusEnum;
import com.jt.www.enums.woxuebao.HandlerStatusEnum;
import com.jt.www.enums.woxuebao.InsExcelEnum;
import com.jt.www.model.vo.woxuebao.BatchInsParamVO;
import com.jt.www.model.vo.woxuebao.BatchInsQueryParamVO;
import com.jt.www.model.woxuebao.InsBatchEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author admin_ltf
 * @create 2019-06-05 11:28
 */
@Service
public interface BatchInsService {


    ResponseEntity batchIns(BatchInsParamVO vo) throws Exception;

    ResponseEntity retryIns(String id);


    PageInfo<InsBatchEntity> searchBatchInsByExample(BatchInsQueryParamVO vo);

    /**
     * 查询线下业务保单列表
     *
     * @param vo
     * @return
     * @throws Exception
     */
    List<InsBatchEntity> getBatchInsList(BatchInsQueryParamVO vo) throws Exception;

    InsBatchEntity searchInsById(Long id);

    void downInsTemplate(InsExcelEnum excelEnum, HttpServletResponse response, HttpServletRequest request);

    /**
     * 批量投保
     *
     * @param insBatchEntityList
     */
    void sendMessageToIns(List<InsBatchEntity> insBatchEntityList);

    /**
     * 修改支付状态
     *
     * @param id
     * @param conFirmStatusEnum
     * @param times
     */
    void updateConfirmStatusById(Long id, ConFirmStatusEnum conFirmStatusEnum, Integer times);

    /**
     * 修改投保状态
     *
     * @param id
     * @param handlerStatusEnum
     * @param times
     */
    void updateHandleStatusById(Long id, HandlerStatusEnum handlerStatusEnum, Integer times);

}